package com.net.oil.util;


import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;

/**
 * 时间日期格式化工具类
 */
public class DateFormat {

    /**
     * 日期格式化字符串
     *
     * @param millis     日期/時間
     * @param formatFlag FormatFlag枚舉
     * @return 日期字符串
     */
    public static String formatDateTime(long millis, FormatFlag formatFlag) {

        SimpleDateFormat simpleDateFormat;
        String format = getStringFormat(formatFlag);
        if (!StringUtil.isEmpty(format)) {
            simpleDateFormat = new SimpleDateFormat(format, Locale.getDefault());
        } else {
            simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
        }
        return simpleDateFormat.format(millis);
    }

    /**
     * 根据Calendar返回yyyy-MM-dd格式字符串
     *
     * @param calendar calendar
     * @return yyyy-MM-dd
     */
    public static String getStringDateByCalendar(Calendar calendar) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
        return simpleDateFormat.format(calendar.getTime());
    }

    /**
     * 根据Calendar返回yyyy-MM-dd格式字符串
     *
     * @param calendar calendar
     * @return yyyy-MM-dd
     */
    public static String getStringDate(Calendar calendar) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:00", Locale.getDefault());
        return simpleDateFormat.format(calendar.getTime());
    }

    private static String getStringFormat(FormatFlag formatFlag) {
        switch (formatFlag) {
            case YDMHMS:
                return "yyyy-MM-dd HH:mm:ss";
            case YDM:
                return "yyyy-MM-dd";
            case YDMHM:
                return "yyy-MM-dd HH:00";
            default:
                return "";
        }
    }

    public enum FormatFlag {
        YDMHMS,  //yyyy-DD-mm HH:mm:ss
        YDM,   //yyyy-DD-mm
        YDMHM //yyyy-dd-mm HH:mm
    }

}
